A certified compiler for an imperative language

نویسنده

  • Yves Bertot
چکیده

This paper describes the process of mechanically certifying a compiler with respect to the semantic speciication of the source and target languages. The proofs are performed in type theory using the Coq system. These proofs introduce speciic theoretical tools: fragmentation theorems and general induction principles. Un compilateur certiii pour un langage impratif RRsumm : Cet article ddcrit la vriication mmcanique de la ddmonstration de certiication d'un compilateur vis-vis des spciications ssmantiques du langage source et du langage cible. Ces vriications sont eeectuues dans le formalisme de la thhorie des types, l'aide du systtme Coq. Cette vriication permet d'introduire des outils thhoriques adaptts: thhorrmes de fragmentation et principe de rrcurrence ggnnral.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Certified Extension of the Krivine Machine for a Call-by-Name Higher-Order Imperative Language

In this paper we present a compiler that translates programs from an imperative higher-order language into a sequence of instructions for an abstract machine. We consider an extension of the Krivine machine for the call-by-name lambda calculus, which includes strict operators and imperative features. We show that the compiler is correct with respect to the big-step semantics of our language, bo...

متن کامل

COGENT: Certified Compilation for a Functional Systems Language

We present a self-certifying compiler for the Cogent systems language. Cogent is a restricted, polymorphic, higher-order, and purely functional language with linear types and without the need for a trusted runtime or garbage collector. It compiles to efficient C code that is designed to interoperate with existing C functions. The language is suited for layered systems code with minimal sharing ...

متن کامل

Certified Development Tools Implementation in Objective Caml

This paper presents our feedback from the study on the use of Objective Caml for safety-critical software development tools implementation. As a result, Objective Caml is now used for the new Scade certified embedded-code generator. The requirements for tools implementation are less strict than those for the embedded code itself. However, they are still quite demanding and linked to imperative ...

متن کامل

From Relational Specifications to Logic Programs

This paper presents a compiler from expressive, relational specifications to logic programs. Specifically, the compiler translates the Imperative Alloy specification language to Prolog. Imperative Alloy is a declarative, relational specification language based on first-order logic and extended with imperative constructs; Alloy specifications are traditionally not executable. In spite of this th...

متن کامل

Formalizing and Verifying Semantic Type Soundness of a Simple Compiler (Preliminary Report)

We describe a semantic type soundness result, formalized in the Coq proof assistant, for a compiler from a simple imperative language with heap-allocated data into an idealized assembly language. Types in the high-level language are interpreted as binary relations, built using both second-order quantification and a form of separation structure, over stores and code pointers in the low-level mac...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998